package com.ucar.umock.client.annotation;

import com.ucar.umock.client.enums.EnumMockExectorType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(value = {ElementType.METHOD,ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface UMock {

    /**
     * mock 名称
     * @return
     */
    String name();

    /**
     * 处理类型
     * @return
     */
    EnumMockExectorType handleType() default EnumMockExectorType.UMOCK_STORE;


    /**
     * processType=1(固定简单类型值) 时指定
     *
     * @return
     */
    String fixedValue() default "";

    /**
     * processType=
     *  FIXED_SIMPLE_ARRAY(3,"固定简单类型数组"),
     *  FIXED_SIMPLE_VALUE_FROM_RANDOM_ARRAY(4,"固定数组中随机获取一个值"),
     *  指定数组
     * @return
     */
    String[] fixedArray() default {};

    /**
     * 自定义Process，需要指定，本地自定义实现 UMockMethodCustomValueHandle
     *  processType=
     *  CUSTOM_HANDLE(98,"本地自定义Handle处理")
     *
     * @return
     */
    String customHandle() default "";


}
